#ifndef EQUATION_HPP
#define EQUATION_HPP
#include <functional>

using callable = std::function<double(double)>;

class Equation {
private:
  callable equation;
  callable derevative_1;
  callable derevative_2;

public:
  explicit Equation(callable const &function, callable const &derivative_1,
                    callable const &derivative_2)
      : equation(function), derevative_1(derivative_1),
        derevative_2(derivative_2){};
  callable const &get_equation() const { return equation; }
  callable const &get_first_derivative() const { return derevative_1; };
  callable const &get_second_derivative() const { return derevative_2; };
};

#endif /* EQUATION_HPP */
